/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hoja4;

/**
 *
 * @param <E> 
 * @author Nery Giron, Adrian Martinez, Maria Fernanda Martinez, Darwin Rivas
 */
public class DoublyLinkedNode <E> {
    /**
     * 
     */
    protected E data;
    /**
     * 
     */
    protected DoublyLinkedNode<E> nextElement;
    /**
     * 
     */
    protected DoublyLinkedNode<E> previousElement;
    
    /**
     * Nombre: DoublyLinkedNode
     * Descipcion: constructor de la clase
     * Pre: no hay
     * Post: nodo creado
     * No hay valor de retorno
     * @param v de tipo E
     * @param next de tipo DoublyLinkedNode<E>
     * @param previous de tipo DoublyLinkedNode<E>
     */
    public DoublyLinkedNode(E v, DoublyLinkedNode<E> next, DoublyLinkedNode<E> previous)
    {
        data = v;
        nextElement = next;
        if (nextElement != null)
            nextElement.previousElement = this;
        previousElement = previous;
        if (previousElement != null)
            previousElement.nextElement = this;
    }
    
    
    /**
     * Nombre: DoublyLinkedNode
     * Descipcion: constructor de la clase
     * Pre: no hay
     * Post: elementro constriudo
     * No hay valor de retorno
     * @param v de tipo E
     */
    public DoublyLinkedNode(E v)
    {
        this(v,null,null);
    }

    /**
     * Nombre: setNext
     * Descipcion: asigna un valor nextElement
     * Pre: object existe
     * Post: nextElement tiene el valor de object
     * No tiene valor de retorno
     * @param object de tipo Object
     */
    void setNext(Object object) {
        nextElement=(DoublyLinkedNode<E>) object;
    }
}
